# def func(**kwargs):
#     print(kwargs)
#     print(type(kwargs))
#     print(kwargs['b'])
#     print(kwargs.get('c'))
#
#
# # func()
# print('--' * 100)
# func(a=1, b=2, c=3)

# 所有形参格式一起使用规范
# 顺序：
# 位置参数:决定实参一定要一一对应
# 默认参数：不传递实参使用默认值，传递实参覆盖默认值使用实参值
# 不定长位置参数:接收所有不确定位置参数，可以没有，也可以无数个（储存形式：元组）
# 不定长关键字参数:接收所有不确定关键字参数，可以没有，也可以无数个（储存形式：字典）

def func(a, b, c=33, *args, **kwargs):
    print(f'a:{a}')
    print(f'a:{b}')
    print(f'a:{c}')
    print(f'args:{args}')
    print(f'kwargs:{kwargs}')


#
# func(11, 22)
# func(11, 22, 333)
# func(11, 22, 333, 1, 2, 3, 1)

func(11, 22, 333, 1, 2, 3, 1, q=110, w=120, e=119)